calendar: grab focus first, emit signals after
authorCarlos Garnacho <carlosg@gnome.org>
Fri, 7 Mar 2014 01:35:30 +0000 (02:35 +0100)
committerCarlos Garnacho <carlosg@gnome.org>
Fri, 7 Mar 2014 01:50:27 +0000 (02:50 +0100)
It may be unusual, but handlers of day-selected may want to transfer
focus somewhere else, without getting it reset back right after by/to
the calendar. This makes popovers demo work on the calendar again, for
one...

gtk/gtkcalendar.c

index 00e6a9bfd52efab35b7295a45d8eb93240d90511..64602e08f939652ae960de53e7f787b330cb55e0 100644 (file)
@@ -3001,12 +3001,12 @@ gtk_calendar_button_press (GtkWidget      *widget,
   GtkCalendarPrivate *priv = calendar->priv;
   gint arrow = -1;
 
-  if (event->window == priv->main_win)
-    calendar_main_button_press (calendar, event);
-
   if (!gtk_widget_has_focus (widget))
     gtk_widget_grab_focus (widget);
 
+  if (event->window == priv->main_win)
+    calendar_main_button_press (calendar, event);
+
   for (arrow = ARROW_YEAR_LEFT; arrow <= ARROW_MONTH_RIGHT; arrow++)
     {
       if (event->window == priv->arrow_win[arrow])